home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs19.d81
/
typset.arc
/
FIGURE DRAW
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
2KB
|
91 lines
1 REM FIGURE DRAW FOR CAD
2 PRINT"[147][158]":POKE53280,00:POKE53281,00
3 CLR:DIMA%(960,3):EN=960
4 X$="[216]:"
5 Y$="[217]:"
6 PRINTCHR$(14)"[147][210]EFERENCE (L,R,T,B)":R=1
7 GETA$:IFA$=""THEN7
8 IFA$="R"THENR=2
9 IFA$="T"THENR=3
10 IFA$="B"THENR=4
11 ONRGOSUB37,38,39,40
12 PRINT"[147]"
13 PRINT"";:PRINTTAB(18);"[216]:"
14 PRINT"";:PRINTTAB(28);"[217]:"
15 POKESP,91:POKECP,08
16 PRINTX$;X;"[157] ";Y$;Y;"[157] "
17 GETA$:IFA$<>""THEN24
18 POKESP+X+40*Y,PEEK(SP+X+40*Y)AND127
19 JV=PEEK(56320):FR=JVAND16:IFFR<>0THENFL=0:GOTO21
20 GOSUB29
21 JV=15-(JVAND15):IFJV=15THEN17
22 ONRGOSUB41,46,51,56
23 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:POKECP+X+40*Y,08:GOTO16
24 IFA$=CHR$(20)THENGOSUB32
25 IFA$=CHR$(136)THENGOSUB61
26 IFA$=CHR$(140)THENGOSUB78:RUN
27 IFA$=CHR$(147)THEN3
28 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:GOTO17
29 IFFL=1THEN31
30 FL=1:CU=102:IF(PEEK(SP+X+40*Y)AND127)=102THENCU=32-128
31 POKESP+X+40*Y,128+CU:POKECP+X+40*Y,08:RETURN
32 CL=0
33 CL=CL+1:IFCL=256THENRETURN
34 IFA%(CL,1)<>XTHEN33
35 IFA%(CL,2)<>YTHEN33
36 POKESP+A%(CL,1)+A%(CL,2)*40,32:A%(CL,3)=0:RETURN
37 SP=1504:CP=55776:RETURN
38 SP=1543:CP=55815:RETURN
39 SP=1083:CP=55355:RETURN
40 SP=2003:CP=56275:RETURN
41 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
42 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
43 IF(JVAND4)THENX=X-1:IFX<0THENX=0
44 IF(JVAND8)THENX=X+1:IFX>39THENX=39
45 RETURN
46 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
47 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
48 IF(JVAND4)THENX=X-1:IFX<-40THENX=-40
49 IF(JVAND8)THENX=X+1:IFX>0THENX=0
50 RETURN
51 IF(JVAND1)THENY=Y-1:IFY<0THENY=0
52 IF(JVAND2)THENY=Y+1:IFY>23THENY=23
53 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
54 IF(JVAND8)THENX=X+1:IFX>20THENX=20
55 RETURN
56 IF(JVAND1)THENY=Y-1:IFY<-23THENY=-23
57 IF(JVAND2)THENY=Y+1:IFY>0THENY=0
58 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
59 IF(JVAND8)THENX=X+1:IFX>20THENX=20
60 RETURN
61 PRINT"[147][204][207][193][196] FILENAME:";
62 GETF$:IFF$=""THEN62
63 IFF$=CHR$(13)THENRETURN
64 OPEN2,8,2,F$+".FIG,P,R":P1=0
65 FORT=1TO2
66 GET#2,A$(T)
67 NEXT
68 P1=P1+1:FORT=1TO2
69 GET#2,A$:IFA$=CHR$(255)THEN74
70 REM IFA$=""THEN67
71 A=ASC(A$+CHR$(0))
72 IFA>127THENA=-(AAND127)
73 A%(P1,T)=A:NEXT:A%(P1,3)=1:GOTO68
74 CLOSE2
75 PRINT"[147]":FORT=1TOP1-1:IFA%(T,3)=0THENNEXT:GOTO77
76 X1=A%(T,1):Y1=A%(T,2):POKESP+X1+40*Y1,128+102:POKECP+X1+40*Y1,08:NEXT
77 P=P1-1:RETURN
78 PRINT"[211][193][214][197] FILENAME:";
79 GETF$:IFF$=""THEN79
80 IFF$=CHR$(13)THEN90
81 OPEN2,8,2,"@0:"+F$+".FIG,P,W":P1=0
82 PRINT#2,CHR$(0);CHR$(158);
83 FORI=1064TO2047
84 IF(PEEK(I)AND127)<>102THENPOKEI,32:GOTO89
85 POKEI,160
86 B%(2)=INT((I-SP)/40):B%(1)=INT(((I-SP)/40-B%(2))*40+.5)
87 FORJ=1TO2:IFB%(J)<0THENB%(J)=ABS(B%(J))OR128
88 NEXTJ:PRINT#2,CHR$(B%(1));CHR$(B%(2));
89 NEXTI
90 PRINT#2,CHR$(255);CHR$(255);:CLOSE2:PRINT"[147]":RETURN